/**
 * CMS内容管理系统 API
 */

import { get, post, put, del } from '@/utils/request'

// ==================== 文章管理 ====================

/**
 * 获取文章列表
 */
export function getArticleList(params) {
  return get('/api/cms/articles', params)
}

/**
 * 获取文章详情
 */
export function getArticleDetail(id) {
  return get(`/api/cms/articles/${id}`)
}

/**
 * 新增文章
 */
export function addArticle(data) {
  return post('/api/cms/articles', data)
}

/**
 * 更新文章
 */
export function updateArticle(id, data) {
  return put(`/api/cms/articles/${id}`, data)
}

/**
 * 删除文章
 */
export function deleteArticle(id) {
  return del(`/api/cms/articles/${id}`)
}

/**
 * 批量删除文章
 */
export function batchDeleteArticles(ids) {
  return post('/api/cms/articles/batch-delete', { ids })
}

/**
 * 发布文章
 */
export function publishArticle(id) {
  return post(`/api/cms/articles/${id}/publish`)
}

/**
 * 下线文章
 */
export function unpublishArticle(id) {
  return post(`/api/cms/articles/${id}/unpublish`)
}

// ==================== 栏目管理 ====================

/**
 * 获取栏目列表
 */
export function getCategoryList(params) {
  return get('/api/cms/categories', params)
}

/**
 * 获取栏目树
 */
export function getCategoryTree() {
  return get('/api/cms/categories/tree')
}

/**
 * 获取栏目详情
 */
export function getCategoryDetail(id) {
  return get(`/api/cms/categories/${id}`)
}

/**
 * 新增栏目
 */
export function addCategory(data) {
  return post('/api/cms/categories', data)
}

/**
 * 更新栏目
 */
export function updateCategory(id, data) {
  return put(`/api/cms/categories/${id}`, data)
}

/**
 * 删除栏目
 */
export function deleteCategory(id) {
  return del(`/api/cms/categories/${id}`)
}

// ==================== 标签管理 ====================

/**
 * 获取标签列表
 */
export function getTagList(params) {
  return get('/api/cms/tags', params)
}

/**
 * 获取标签详情
 */
export function getTagDetail(id) {
  return get(`/api/cms/tags/${id}`)
}

/**
 * 新增标签
 */
export function addTag(data) {
  return post('/api/cms/tags', data)
}

/**
 * 更新标签
 */
export function updateTag(id, data) {
  return put(`/api/cms/tags/${id}`, data)
}

/**
 * 删除标签
 */
export function deleteTag(id) {
  return del(`/api/cms/tags/${id}`)
}

// ==================== 评论管理 ====================

/**
 * 获取评论列表
 */
export function getCommentList(params) {
  return get('/api/cms/comments', params)
}

/**
 * 获取评论详情
 */
export function getCommentDetail(id) {
  return get(`/api/cms/comments/${id}`)
}

/**
 * 审核通过评论
 */
export function approveComment(id) {
  return post(`/api/cms/comments/${id}/approve`)
}

/**
 * 拒绝评论
 */
export function rejectComment(id) {
  return post(`/api/cms/comments/${id}/reject`)
}

/**
 * 删除评论
 */
export function deleteComment(id) {
  return del(`/api/cms/comments/${id}`)
}

/**
 * 批量审核评论
 */
export function batchApproveComments(ids) {
  return post('/api/cms/comments/batch-approve', { ids })
}

/**
 * 批量删除评论
 */
export function batchDeleteComments(ids) {
  return post('/api/cms/comments/batch-delete', { ids })
}

/**
 * 回复评论
 */
export function replyComment(id, data) {
  return post(`/api/cms/comments/${id}/reply`, data)
}

// ==================== 媒体库管理 ====================

/**
 * 获取媒体文件列表
 */
export function getMediaList(params) {
  return get('/api/cms/media', params)
}

/**
 * 获取媒体文件详情
 */
export function getMediaDetail(id) {
  return get(`/api/cms/media/${id}`)
}

/**
 * 上传媒体文件
 */
export function uploadMedia(formData) {
  return post('/api/cms/media/upload', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 删除媒体文件
 */
export function deleteMedia(id) {
  return del(`/api/cms/media/${id}`)
}

/**
 * 批量删除媒体文件
 */
export function batchDeleteMedia(ids) {
  return post('/api/cms/media/batch-delete', { ids })
}

// ==================== 友情链接管理 ====================

/**
 * 获取友情链接列表
 */
export function getLinkList(params) {
  return get('/api/cms/links', params)
}

/**
 * 获取友情链接详情
 */
export function getLinkDetail(id) {
  return get(`/api/cms/links/${id}`)
}

/**
 * 新增友情链接
 */
export function addLink(data) {
  return post('/api/cms/links', data)
}

/**
 * 更新友情链接
 */
export function updateLink(id, data) {
  return put(`/api/cms/links/${id}`, data)
}

/**
 * 删除友情链接
 */
export function deleteLink(id) {
  return del(`/api/cms/links/${id}`)
}

// ==================== 广告管理 ====================

/**
 * 获取广告列表
 */
export function getAdList(params) {
  return get('/api/cms/ads', params)
}

/**
 * 获取广告详情
 */
export function getAdDetail(id) {
  return get(`/api/cms/ads/${id}`)
}

/**
 * 新增广告
 */
export function addAd(data) {
  return post('/api/cms/ads', data)
}

/**
 * 更新广告
 */
export function updateAd(id, data) {
  return put(`/api/cms/ads/${id}`, data)
}

/**
 * 删除广告
 */
export function deleteAd(id) {
  return del(`/api/cms/ads/${id}`)
}

/**
 * 获取广告位列表
 */
export function getAdPositionList() {
  return get('/api/cms/ad-positions')
}

// ==================== 统计分析 ====================

/**
 * 获取CMS统计数据
 */
export function getCmsStatistics() {
  return get('/api/cms/statistics')
}

/**
 * 获取文章浏览统计
 */
export function getArticleViewStatistics(params) {
  return get('/api/cms/statistics/article-views', params)
}

/**
 * 获取热门文章
 */
export function getHotArticles(params) {
  return get('/api/cms/statistics/hot-articles', params)
}

export default {
  // 文章
  getArticleList,
  getArticleDetail,
  addArticle,
  updateArticle,
  deleteArticle,
  batchDeleteArticles,
  publishArticle,
  unpublishArticle,
  // 栏目
  getCategoryList,
  getCategoryTree,
  getCategoryDetail,
  addCategory,
  updateCategory,
  deleteCategory,
  // 标签
  getTagList,
  getTagDetail,
  addTag,
  updateTag,
  deleteTag,
  // 评论
  getCommentList,
  getCommentDetail,
  approveComment,
  rejectComment,
  deleteComment,
  batchApproveComments,
  batchDeleteComments,
  replyComment,
  // 媒体库
  getMediaList,
  getMediaDetail,
  uploadMedia,
  deleteMedia,
  batchDeleteMedia,
  // 友情链接
  getLinkList,
  getLinkDetail,
  addLink,
  updateLink,
  deleteLink,
  // 广告
  getAdList,
  getAdDetail,
  addAd,
  updateAd,
  deleteAd,
  getAdPositionList,
  // 统计
  getCmsStatistics,
  getArticleViewStatistics,
  getHotArticles
}

